(function(){
    function getParent (jqObj) {
        return jqObj.parents(".peter-img-uploader");
    }
    function appendImg(data, parent) {
        var peterAppend = parent.find(".peter-append");
        var parentData = parent.data("data");
        if(parentData.num >= parentData.count) {
            $.toast("最多只能上传"+parentData.count+"张图片", "forbidden");
            return;
        }
        ++parentData.num;
        // 创建外框
        var peterImg = $("<div class='peter-img'><span class='icon icon-34 jiahao'></span></div>");
        peterImg.insertBefore(peterAppend);

        // 创建input
        var peterInput = $("<input type='hidden' name='"+parentData.inputName+"' value='"+data+"'>");
        peterInput.appendTo(peterImg);

        // 创建img显示图片
        var img = $("<img src='"+data+"' />");
        img.appendTo(peterImg);
        img.css("width", "100%");
        img.css("height", "100%");
        parent.data("data", parentData);
    }


    (function () {
        /**
         * jquery 插件初始化
         */
        $.fn.imgUploaderInit = function(uploadUrl, count) {
            if (typeof FileReader == 'undefined') {
                this.html("<p>当前浏览器太久，不能上传</p>");
                return;
            }


            this.addClass("peter-img-uploader");
            this.append("<div class='peter-append'></div>");

            var file = this.find(".peter-file");

            for(var i = 0 ; i < this.length ; ++i) {
                $(this[i]).data("data", {
                    inputName: file.prop("name") ,
                    num: 0 ,
                    uploadUrl: uploadUrl ,
                    count: count
                });
            }

            file.removeAttr("name");


            /**
             * 删除照片
             */
            $(this).on("click", ".peter-img", function() {
                var parent = getParent($(this));
                var parentData = parent.data("data");
                --parentData.num;
                parent.data("data", parentData);
                $(this).remove();
            });
        };
        /**
         * 获取 ajax参数
         */
        $.fn.imgUploaderAjaxArgs = function () {
            if (typeof FileReader == 'undefined') {
                this.html("<p>当前浏览器太久，不能上传</p>");
                return;
            }
            var args = [];
            var peterInput = this.find(".peter-img input");
            [].forEach.call(peterInput, function (input){
                args.push($(input).prop("value"));
            });
            return args;
        };

        /**
         * 添加图片
         */
        $.fn.imgUploaderAppendImg = function (data) {
            if (typeof FileReader == 'undefined') {
                this.html("<p>当前浏览器太久，不能上传</p>");
                return;
            }
            var parent = $(this);
            [].forEach.call(data, function (d){
                appendImg(d, parent);
            });

        }


    })();
    $(function(){
        /**
         * 新添加图片
         */
        wx.ready(function(){
            $("body").on("click", ".peter-append", function () {
                var parent = getParent($(this));
                var parentData = parent.data("data");
                wx.chooseImage({
                    count: parentData.count, // 默认9
                    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
                    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
                    success: function (res) {
                        var localIds = res.localIds; // 返回选定照片的本地ID列表，localId可以作为img标签的src属性显示图片

                        localIds.forEach(function(localId){
                            wx.uploadImage({
                                localId: localId, // 需要上传的图片的本地ID，由chooseImage接口获得
                                isShowProgressTips: 1, // 默认为1，显示进度提示
                                success: function (res) {
                                    var serverId = res.serverId; // 返回图片的服务器端ID
                                    var data = {
                                        mediaId: serverId
                                    };
                                    // $.post("{:create_mobile_url('upload')}", data, function(data, status){
                                    $.post(parentData.uploadUrl, data, function(data, status){
                                        appendImg(data.path, parent);
                                    });
                                }
                            });
                        });


                    }
                });


            });
        });


    });
})();